/**

 @Name：任务管理
 @Author：eros
 @Site：
 @License：LPPL

 */
layui.define(function(exports) {

    layui.use(['form', 'laydate','table','dropdown','util','admin'], function() {
        var $ = layui.$,
            form = layui.form,
            laydate = layui.laydate,
            element = layui.element,
            table = layui.table;
            util = layui.util;
            admin = layui.admin;

        $(function () {
            // var quartzTaskData = {
            //
            // };
            quartzTaskListRender();
        })

        function quartzTaskListRender(){
            //渲染
            table.render({
                elem: '#quartz-task',
                url:layui.setter.url+'/mail/task/getOrderJobList',
                where:{
                    'access_token':layui.data('layuiAdmin').access_token
                },
                cols: [
                    [
                        {
                            type:'numbers'
                        },{
                        title: '时间明细',
                        align: 'center',
                        width: 200
                        ,templet:function (d) {
                            var createDate = util.toDateString(d.createDate, "yyyy-MM-dd HH:mm:ss");
                            var updateDate = util.toDateString(d.updateDate, "yyyy-MM-dd HH:mm:ss");
                            return "创建时间:"+createDate+"<br>修改时间:"+updateDate;
                        }
                    },{
                        title: '方法名称',
                        align: 'center',
                        width: 125
                        ,templet:function (d) {
                            return "<input type='button' onclick='mailDetail("+JSON.stringify(d)+");' value='"+d.methodName+"' class='layui-btn layui-btn-xs'>";
                        }
                    },  {
                        title: '任务明细',
                        align: 'center',
                        width: 220
                        ,templet:function (d) {
                            return "任务组:"+d.jobGroup+"<br/>任务名称:"+d.jobName+"<br/>任务规则:"+d.cronExpression;
                        }
                    }, {
                        width: 300,
                        title: '发件人详情'
                        ,align: 'center'
                        ,templet:function (d) {
                            var str = "";
                            if(d.userDO!=null){
                                str += "发件人账户:"+d.userDO.username+"<br/>";
                            }
                            str += "发件人邮箱:"+d.srcEmail+"<br/>邮箱密码:******";
                            return str;
                        }
                    }, {
                        width: 300,
                        title: '收件人详情'
                        ,align: 'center'
                        ,templet:function (d) {
                            return "收件人邮箱:"+d.targetEmail;
                        }
                    },{
                        width: 250,
                        title: '描述'
                        ,align: 'center'
                        ,templet:function (d) {
                            return d.description;
                        }
                    },{
                        width: 100,
                        title: '状态'
                        ,align: 'center'
                        ,templet:function (d) {
                            var str="";
                            if(d.jobStatus==1){
                                str="<div></div><input type=\"checkbox\" value='"+d.id+"' id='quartzTaskSwitch"+d.id+"' name=\"quartzTaskSwitch\" lay-skin=\"switch\" lay-filter=\"quartzTaskSwitch\" lay-text=\"激活|冻结\" checked>";
                            }else if(d.jobStatus==0){
                                str="<input type=\"checkbox\" value='"+d.id+"' id='quartzTaskSwitch"+d.id+"' name=\"quartzTaskSwitch\" lay-skin=\"switch\" lay-filter=\"quartzTaskSwitch\" lay-text=\"激活|冻结\">";
                            }
                            return str;
                        }
                    }, {
                        width: 100,
                        title: '操作',
                        align: 'center',
                        toolbar:'#quartz-task-tools',
                    }]
                ],
                done:function (){
                    $('.layui-table-view .layui-table[lay-size=sm] .layui-table-cell').css({'height': '30px', 'line-height': '30px'});
                    $('.layui-table-cell').css({'height': 'inherit'});
                    $('.layui-table-page').css({'height':'30px'});
                    // $('#layui-table-page1').css({'height':'40px'});
                },
                id: 'quartz-task',
                page: true,
                height:'full-100'
                , even: false //开启隔行背景
                , size: 'sm' //小尺寸的表格
            });
        }



        //监听工具条
        table.on('tool(quartzTask)', function(obj){ //注：tool是工具条事件名，test是table原始容器的属性 lay-filter="对应的值"
            var data = obj.data; //获得当前行数据
            var layEvent = obj.event; //获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
            var tr = obj.tr; //获得当前行 tr 的DOM对象
            if(data.currentStatus==null){
                if(layEvent === 'delete'){ //删除
                    layer.confirm('真的删除么', function(index){
                        $.ajax({
                            type: "POST",
                            url: layui.setter.url + "/mail/task/remove",
                            dataType: "json",
                            data: {
                                'id': data.id,
                                'access_token':  layui.data('layuiAdmin').access_token
                            },
                            success:function(data){
                                if(data.code==0){
                                    layer.msg("删除成功");
                                    layer.close(index);
                                    // var quartzTaskRuleData = {
                                    //     "id":null,
                                    //     "methodName":"quartzTask"
                                    // };
                                    quartzTaskListRender();
                                }else if(data.code==1){
                                    layer.msg("删除失败");
                                    layer.close(index);
                                }
                            }
                        });
                    });
                } else if(layEvent === 'edit'){ //编辑

                    var status = null;
                    //考虑到任务即将执行的情况，须在修改前停止修改的这个任务(目前这样处理)
                    var quartzTaskSwitchStatus = document.getElementById("quartzTaskSwitch"+data.id);
                    if(quartzTaskSwitchStatus.checked){
                        status="start";
                        //修改前原本状态是激活的先停止任务
                       //    clickEditUpdateStatusTask(data.id,status);
                    }else{
                        status="stop";
                    }

                    layui.data('quartzTaskData', {
                        key: 'data'
                        , value: data
                    }),
                    admin.popup({
                        type:2,
                        title:'订单同步规则修改',
                        area:['550px','850px'],
                        anim:3,
                        fixed:false,
                        resize:false,
                        scrollbar:false,
                        content:['../src/views/mail/quartz/edit.html','no'],
                        end:function () {

                            //修改后原本状态是激活的再恢复任务
                            // if(status=="start"){
                            //     clickEditUpdateStatusTask(data.id,status);
                            // }

                            var quartzTaskRuleData = {
                                "id":null,
                                "methodName":"quartzTask"
                            };
                           quartzTaskListRender();
                        }
                    });
                }
            }else{
                layer.msg(data.currentStatus);
            }
        });

        form.on('switch(quartzTaskSwitch)', function(data){
            var status = null;
            if(data.elem.checked){
                status="start";
            }else{
                status="stop";
            }
            $.ajax({
                url:layui.setter.url+'/mail/task/updateJobStatus',
                type:'get',
                dataType:'json',
                data:{
                    'access_token': layui.data('layuiAdmin').access_token,
                    jobId:data.value,
                    cmd:status
                },
                async:false,
                success:function (data) {
                    if(data.code==0){
                        if(status=="start"){
                            layer.msg("已激活");
                        }else{
                            layer.msg("已冻结");
                        }
                     }
                }
            });
        });

        function clickEditUpdateStatusTask(jobId,status){
            $.ajax({
                url:layui.setter.url+'/business/order/quartzTask/updateJobStatus',
                type:'get',
                dataType:'json',
                data:{
                    'access_token': layui.data('layuiAdmin').access_token,
                    jobId:jobId,
                    cmd:status
                },
                async:false,
                success:function (data) {

                }
            });
        }

    });


    exports('mail/quartz/quartzTask', {})
});